#include <time.h>
#include "constantes.h"

int getPrecio()
{
	int lalalalalalala;

	srand(time(NULL));
	lalalalalalala = rand() %5+1;
	sleep(lalalalalalala);
}

int main(int argc, char *argv[])
{
	char mensaje[120];
	m_pedido msgpedido;									/* Estructura del pedido */
	m_pedido_precio msgpp;
	int colaid;
	key_t clave_cola;

	clave_cola = ftok(DIRECTORIO, COLA_CL_ENC);

	if ( (colaid = msgget(clave_cola, 0666)) < 0 )						/* Obtengo el ID de la cola */
	{
		sprintf(mensaje, "Error al obtener el ID de la cola Cliente-Encargado\n");
		write(fileno(stdout), mensaje, strlen(mensaje));

		exit(-1);
	}

	printf("El ID de la cola es: %d \n", colaid);
	
	while(1)
	{
		if ( msgrcv(colaid, (m_pedido *) &msgpedido, sizeof(m_pedido), MSG_PEDIDO, 0) < 0 )			/* Obtengo el pedido de la cola */	
		{
			sprintf(mensaje, "Error al encolar el pedido en Cliente-Encargado\n");
			write(fileno(stdout), mensaje, strlen(mensaje));

			exit(-1);
		}

		printf("Nro. Cliente: %d\n", msgpedido.pedido.nro_cliente);
		printf("Chorizos: %d\n", msgpedido.pedido.mitad_chorizo);
		printf("Panes: %d \n", msgpedido.pedido.mitad_pan);

		printf("Estoy calculando el precio...\n");
		getPrecio();

		/* Armo el nuevo mensaje con el precio */
		int precio = msgpedido.pedido.mitad_chorizo * 2 + msgpedido.pedido.mitad_pan * 3;

		msgpp.mtype = MSG_PP;
		msgpp.pp.pedido = msgpedido.pedido;
		msgpp.pp.precio = precio;

		printf("Paso el pedido al Ayudante\n\n");

       		 if ( msgsnd(colaid, (m_pedido_precio *) &msgpp, sizeof(m_pedido_precio), 0) < 0 )                 /* Meto el pedido en la cola */
       		 {
       		         sprintf(mensaje, "Error al encolar el pedido en Cliente-Encargado\n");
       		         write(fileno(stdout), mensaje, strlen(mensaje));

       		         exit(-1);
       		 }
	} 

return 0;
}
